package com.artPreter.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.artPreter.pojo.PlateType;
import com.artPreter.mapper.PlateTypeMapper;
import com.artPreter.service.IPlateTypeService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.UUID;

/**
 * <p>
 * 板块内容分类表 服务实现类
 * </p>
 *
 * @author jarvis
 * @since 2024-11-16
 */
@Service
public class PlateTypeServiceImpl extends ServiceImpl<PlateTypeMapper, PlateType> implements IPlateTypeService {

    /**
     * 分页
     * @param currentPage
     * @param size
     * @param plateType
     * @return
     */
    @Override
    public IPage<PlateType> getPage(Integer currentPage, Integer size, PlateType plateType) {
        IPage<PlateType> plateTypeIPage = new Page<>(currentPage, size);
        LambdaQueryWrapper<PlateType> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(PlateType::getStatus,1);
        plateTypeIPage = this.baseMapper.selectPage(plateTypeIPage, queryWrapper);
        return plateTypeIPage;
    }

    /**
     * 软删除板块分类
     * @param plateType
     */
    @Override
    public void delete(PlateType plateType) {
        plateType.setStatus(0);
        this.baseMapper.updateById(plateType);
    }

    /**
     * 获取板块分类列表
     * @param plateType
     * @return
     */
    @Override

    public List<PlateType> getList(PlateType plateType) {
        LambdaQueryWrapper<PlateType> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(PlateType::getStatus,1);
        List<PlateType> result= this.baseMapper.selectList(queryWrapper);
        return result;
    }

    /**
     * 添加板块分类
     * @param plateType
     */
    @Override
    public void add(PlateType plateType) {
        plateType.setStatus(1);
        // 生成UUID并设置到实体对象中
        String uuid = UUID.randomUUID().toString();
        plateType.setTypeId(uuid);
        this.baseMapper.insert(plateType);
    }

    /**
     * 修改板块分类
     * @param plateType
     */
    @Override
    public void edit(PlateType plateType) {
        this.baseMapper.updateById(plateType);
    }
}
